package arrays

// FlatBy 展开数组中的元素
// fn 根据元素及其索引返回一个新数组
func FlatBy[T, R any](array []T, fn func(T, int, []T) []R) []R {
	var result []R
	for i, v := range array {
		result = append(result, fn(v, i, array)...)
	}
	return result
}
